package com.leo.train.business.service;

import com.leo.train.business.dto.DailyCarriageQueryDto;
import com.leo.train.business.entity.DailyCarriage;
import com.leo.train.business.vo.DailyCarriageQueryVo;
import com.leo.train.common.resp.PageResult;

import java.util.Date;
import java.util.List;

public interface DailyCarriageService {

    /**
     * 保存车厢信息
     * @param dailyCarriage
     */
    void save(DailyCarriage dailyCarriage);

    /**
     * 删除车厢信息
     * @param id
     */
    void deleteById(Long id);

    /**
     * 分页查询车厢信息
     * @param dailyCarriageQueryDto
     * @return
     */
    PageResult<DailyCarriageQueryVo> list(DailyCarriageQueryDto dailyCarriageQueryDto);

    /**
     * 查询车厢信息
     * @param id
     * @return
     */
    DailyCarriageQueryVo detail(Long id);

    /**
     * 根据车次和时间生成车厢信息
     * @param date 日期
     * @param trainCode 车次编号
     */
    void genDaily(Date date,String trainCode);

    /**
     * 根据座位类型车次日期查询车厢列表
     * @param trainCode
     * @param date 日期
     * @param seatType 座位类型
     * @return
     */
    List<DailyCarriage> listBySeatType(String trainCode, Date date, String seatType);
}
